Bentley Map V8i (SELECTseries 10) Help

To Create Topology in Oracle Using SQL Scripts

  1. Drop topology.
    EXECUTE SDO_TOPO.DROP_TOPOLOGY('ET');
  2. Create the topology.
    EXECUTE SDO_TOPO.CREATE_TOPOLOGY('ET',0.00050, 82247,NULL,NULL,NULL,NULL,5);
  3. Insert the universal face (F0).
    INSERT INTO ET_FACE$ values (-1, NULL, SDO_LIST_TYPE(), SDO_LIST_TYPE(), NULL);
    COMMIT;
  4. Create the lot feature table that will participate in the topology.
    DROP TABLE "LOTS" CASCADE CONSTRAINTS;
    CREATE TABLE LOTS
    (OBJECTID NUMBER PRIMARY KEY,
    MSLINK NUMBER,
    LOTNUMBER VARCHAR2(50),
    OWNER VARCHAR2(50),
    SHAPE_Leng NUMBER,
    SHAPE_Area NUMBER,
    FEATURE MDSYS.SDO_TOPO_GEOMETRY);
  5. Add the lots layer to the topology.
    EXECUTE SDO_TOPO.ADD_TOPO_GEOMETRY_LAYER('ET', 'LOTS', 'FEATURE', 'POLYGON');
    COMMIT;
  6. Load the Lots_temp data into the topology from existing SDO_GEOMETRY layer.
    EXECUTE SDO_TOPO_MAP.CREATE_TOPO_MAP('ET', 'TM');
    EXECUTE SDO_TOPO_MAP.LOAD_TOPO_MAP('TM', 'true');
    
    DECLARE CURSOR c1 IS select * from LOTS_TEMP;
    topo_geom SDO_TOPO_GEOMETRY;
    BEGIN
    FOR r IN c1 LOOP
    BEGIN
    topo_geom := SDO_TOPO_MAP.CREATE_FEATURE('ET', 'LOTS', 'FEATURE', r.GEOMETRY);
  7. Associate topological primitives with features.
    INSERT INTO LOTS
    VALUES(r.OBJECTID, r.MSLINK, r.LOTNUMBER, r.OWNER, r.SHAPE_Leng, r.SHAPE_Area, topo_geom);
    EXCEPTION
    when OTHERS then
    null;
    dbms_output.put_line ('LOTS id: = '|| r.OBJECTID);
    END;
    
    END LOOP;
    END;
    /
    
    CALL SDO_TOPO_MAP.COMMIT_TOPO_MAP();
    CALL SDO_TOPO_MAP.DROP_TOPO_MAP('TM');
    
    EXECUTE SDO_TOPO.INITIALIZE_METADATA('ET');
  8. Drop the temporary lot table.
    DROP TABLE LOTS_TEMP;
    DELETE FROM USER_SDO_GEOM_METADATA
    WHERE TABLE_NAME = 'LOTS_TEMP' AND COLUMN_NAME = 'GEOMETRY' ;
    EXIT;